package com.tarena.lbs.basic.web.controller;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.basic.web.repository.UserRepository;
import com.tarena.lbs.basic.web.service.LoginService;
import com.tarena.lbs.pojo.passport.param.AdminLoginParam;
import com.tarena.lbs.pojo.passport.param.UserLoginParam;
import com.tarena.lbs.pojo.passport.vo.LoginVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class LoginController {
    //业务层 仓储层 应该先编写接口 在写实现,
    // 本阶段课程落地 不在做接口 节省接口开发时间
    @Autowired
    private LoginService loginService;
    @Autowired
    private UserRepository userRepository;
    //后台登录
    @PostMapping("/passport/admin/login")
    public Result<LoginVO> adminlogin(AdminLoginParam param) throws BusinessException {
        //调用业务层执行登录逻辑
        //1.controller调用 有返回值LoginVO 从业务层service要数据
        //2、controller没有返回值Result<Void> 一般写操作 service返回void
        LoginVO vo = loginService.doAdminLogin(param);
        return new Result<>(vo);
    }

    /**
     * 02、小程序 用户登录
     */
    @PostMapping("/passport/user/login")
    public Result<LoginVO> userLogin(UserLoginParam param)
            throws BusinessException{
        LoginVO vo=loginService.doUserLogin(param);
        return new Result<>(vo);
    }
}
